"""
AI Integration Configuration
AI功能集成配置文件
"""
import os
from decouple import config

# AI API Configuration
AI_API_KEY = config('AI_API_KEY', default='b79d411fb0534346af9e61c96013e29d.pPP8ffIUFJyB98Os')
AI_API_URL = config('AI_API_URL', default='https://open.bigmodel.cn/api/anthropic')
AI_MODEL = config('AI_MODEL', default='claude-3-sonnet-20240229')
AI_MAX_TOKENS = config('AI_MAX_TOKENS', default=4000, cast=int)
AI_TEMPERATURE = config('AI_TEMPERATURE', default=0.7, cast=float)

# AI Feature Toggles
AI_QUESTION_GENERATION_ENABLED = config('AI_QUESTION_GENERATION_ENABLED', default=True, cast=bool)
AI_GRADING_ASSISTANT_ENABLED = config('AI_GRADING_ASSISTANT_ENABLED', default=True, cast=bool)
AI_ANALYTICS_ENABLED = config('AI_ANALYTICS_ENABLED', default=True, cast=bool)
AI_CHEATING_DETECTION_ENABLED = config('AI_CHEATING_DETECTION_ENABLED', default=False, cast=bool)
AI_ADAPTIVE_DIFFICULTY_ENABLED = config('AI_ADAPTIVE_DIFFICULTY_ENABLED', default=True, cast=bool)

# Rate Limiting
AI_REQUESTS_PER_MINUTE = config('AI_REQUESTS_PER_MINUTE', default=60, cast=int)
AI_REQUESTS_PER_HOUR = config('AI_REQUESTS_PER_HOUR', default=1000, cast=int)

# Cache Configuration
AI_CACHE_TTL = config('AI_CACHE_TTL', default=3600, cast=int)  # 1 hour
AI_ENABLE_CACHE = config('AI_ENABLE_CACHE', default=True, cast=bool)

# Logging Configuration
AI_LOG_LEVEL = config('AI_LOG_LEVEL', default='INFO')
AI_LOG_REQUESTS = config('AI_LOG_REQUESTS', default=True, cast=bool)
AI_LOG_RESPONSES = config('AI_LOG_RESPONSES', default=False, cast=bool)

# Question Generation Settings
AI_DEFAULT_QUESTION_DIFFICULTY = config('AI_DEFAULT_QUESTION_DIFFICULTY', default='medium')
AI_QUESTION_TYPES = [
    'single_choice',
    'multiple_choice',
    'true_false',
    'short_answer',
    'essay',
    'fill_blank'
]

# Legacy Prompts (向后兼容)
AI_SUBJECT_PROMPTS = {
    'math': """
    你是一个专业的数学题目生成助手。请根据给定的知识点和难度级别，生成高质量的数学题目。
    题目应该：
    1. 符合指定的难度级别
    2. 包含清晰的题目描述
    3. 提供准确的答案和解析
    4. 适合目标年级的学生
    """,

    'chinese': """
    你是一个专业的语文题目生成助手。请根据给定的知识点和难度级别，生成高质量的语文题目。
    题目应该：
    1. 符合语文教学大纲要求
    2. 考察语言文字运用能力
    3. 包含阅读理解、写作等题型
    4. 提供详细的评分标准
    """,

    'english': """
    You are a professional English question generation assistant. Please generate high-quality English questions based on given topics and difficulty levels.
    Questions should:
    1. Match the specified difficulty level
    2. Test language comprehension and usage
    3. Include grammar, vocabulary, and reading comprehension
    4. Provide clear answers and explanations
    """,

    'science': """
    你是一个专业的科学题目生成助手。请根据给定的知识点和难度级别，生成高质量的科学题目。
    题目应该：
    1. 基于科学原理和事实
    2. 培养科学思维能力
    3. 包含实验设计和数据分析
    4. 提供科学的解释和答案
    """
}

# Grading Assistant Settings (Legacy - 向后兼容)
AI_GRADING_PROMPTS = {
    'essay': """
    你是一个专业的作文评分助手。请根据以下标准对学生的作文进行评分：
    1. 内容完整性和主题相关性 (30%)
    2. 结构组织和逻辑性 (25%)
    3. 语言表达和词汇使用 (25%)
    4. 创新性和思维深度 (20%)

    请提供：
    - 总分 (0-100分)
    - 各项得分
    - 详细评语
    - 改进建议
    """,

    'short_answer': """
    你是一个专业的主观题评分助手。请根据标准答案对学生的回答进行评分。
    评分要点：
    1. 答案的准确性
    2. 要点的完整性
    3. 表达的清晰性
    4. 逻辑的合理性

    请提供：
    - 得分百分比
    - 错误分析
    - 改进建议
    """
}

# New Prompt Management System
AI_USE_NEW_PROMPT_SYSTEM = config('AI_USE_NEW_PROMPT_SYSTEM', default=True, cast=bool)
AI_PROMPT_VERSION = config('AI_PROMPT_VERSION', default='1.0')
AI_ENABLE_PROMPT_CACHING = config('AI_ENABLE_PROMPT_CACHING', default=True, cast=bool)
AI_CUSTOM_PROMPTS_PATH = config('AI_CUSTOM_PROMPTS_PATH', default='prompts/custom/')

# Cheating Detection Settings
AI_CHEATING_INDICATORS = [
    'unusual_answer_patterns',
    'consistent_wrong_answers',
    'time_pattern_anomalies',
    'copying_detection',
    'knowledge_level_inconsistency'
]

# Analytics Settings
AI_ANALYTICS_FEATURES = [
    'learning_progress_analysis',
    'difficulty_adaptation',
    'performance_prediction',
    'knowledge_gap_identification',
    'study_recommendations'
]

# Safety and Moderation
AI_CONTENT_MODERATION_ENABLED = config('AI_CONTENT_MODERATION_ENABLED', default=True, cast=bool)
AI_MAX_CONTENT_LENGTH = config('AI_MAX_CONTENT_LENGTH', default=10000, cast=int)
AI_BLOCKED_CONTENT_TYPES = [
    'violence',
    'adult_content',
    'hate_speech',
    'illegal_activities'
]

# Retry Configuration
AI_MAX_RETRIES = config('AI_MAX_RETRIES', default=3, cast=int)
AI_RETRY_DELAY = config('AI_RETRY_DELAY', default=1, cast=float)
AI_TIMEOUT_SECONDS = config('AI_TIMEOUT_SECONDS', default=30, cast=int)